package r4.powtorka2;

import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Losowanie {

	public static void main(String[] args) {

		int wybor[] = pobierzParametry();
		int[] wylosowane = losuj(wybor);
		pokazWylosowane(wylosowane);
	}

	private static void pokazWylosowane(int[] wylosowane) {
		Arrays.sort(wylosowane);
		int licznik = 0;
		for(int e : wylosowane){
			if(licznik % 10 == 0)
				System.out.println();
			System.out.printf("%3d", e);
		}
	}

	private static int[] losuj(int[] wybor) {
		int[] listaLiczb = new int[wybor[0]];
		for (int i = 0; i < listaLiczb.length; i++) {
			listaLiczb[i] = i + 1;
		}
		int[] wylosowano = new int[wybor[1]];
		int limit = listaLiczb.length;
		int los;
		for (int i = 0; i < wylosowano.length; i++) {
			los = (int) (Math.random() * limit);
			wylosowano[i] = listaLiczb[los];
			listaLiczb[los] = listaLiczb[limit - 1];
			limit--;
		}
		System.out.println(Arrays.toString(wylosowano));
		return wylosowano;
	}

	private static int[] pobierzParametry() {
		int n = 0;
		int k = 0;
		boolean niepoprawnaOdp = true;

		System.out.println("Podaj k liczb z n:");
		while (niepoprawnaOdp) {
			Scanner input = new Scanner(System.in);
			try {
				k = input.nextInt();
				n = input.nextInt();
				System.out.println("Losujemy " + k + " liczb z " + n + ".");
				niepoprawnaOdp = false;
			} catch (InputMismatchException e) {
				System.out.println("Podaj dwie liczby:");
			}
		}
		int[] tab = new int[2];
		tab[0] = n;
		tab[1] = k;
		return tab;
	}

}
